package cn.yza.设计模式.工厂模式.工厂方法;

/** 如果要新增一种茶叶，比如毛尖，只需要新建一个生产毛尖的工厂类实现ITeaFactory即可。
 * 可以看到符合开闭原则、单一职责原则。
 * 工厂方法适用于以下场景：
 * 1、创建对象需要大量重复的代码。
 * 2、客户端（应用层）不依赖于产品类实例如何被创建、实现等细节。
 * 3、一个类通过其子类来指定创建哪个对象。
 *
 * 工厂方法也有缺点：
 * 1、类的个数容易过多，增加复杂度。
 * 2、增加了系统的抽象性和理解难度。
 * @author Honglixi
 * @create 2022-01-09 16:23
 */
public class FactoryMethodTest {
    public static void main(String[] args) {
        ITeaFactory factory = new LongjingTeaFactory();
        factory.createTea().makeTea();

        factory = new BiluochunTeaFactory();
        factory.createTea().makeTea();
    }
}
